#include<vector>
#include<string>
#include<utility>
#include<map>

std::vector<std::string> getTextFromInput(const char* path);

void getHashesFromInput(const std::vector<std::string>& listFromFirstInput,
	const std::vector<std::string>& listFromSecondInput,
	std::map<std::string, long long>& keys,
	std::vector<std::string>& keysReverse,
	std::vector<long long>& hashes1,
	std::vector<long long>& hashes2
	);

void outputEditorChanges(const char* path,
	const std::map<std::string, long long>& keys,
	const std::vector<std::string>& keysReverse,
	const std::vector<long long>& hashes1,
	const std::vector<long long>& hashes2,
	const std::vector<std::pair<char, long long> >& editingWay
	);

std::vector<std::pair<char, std::string> > gettingChangesOfTwoFiles(
	const char* inputPath1 = "input1.txt",
	const char* inputPath2 = "input2.txt",
	const char* outputPath = "output.txt",
	int mode = 0);
